本サイトは、快適にご利用いただくためにクッキー(Cookie)を使用しております。
Cookieの使用に同意いただける場合は「同意する」ボタンを押してください。
なお本サイトのCookie使用については、「個人情報保護方針」をご覧ください。

セキュリティナレッジ

2026.10.15

Black Hat USA 2026 参加レポート - Adversary Tactics: Identity-driven Offensive Tradecraft

はじめに

こんにちは、先端技術事業部、藤縄 直弘です。2025年3月に中途入社し、現在はActive Directory環境に対するペネトレーションテストや、脅威ベースのペネトレーションテスト(TLPT)といった案件をデリバリーしています。

押し寄せるプロジェクトの間をぬって、2026年8月1日(土)から6日(木)まで、ラスベガスで開催された「Black Hat USA 2026」に参加してきましたので、その参加レポートを執筆しました。ただ、Black Hat自体やBriefing等の他の企画については既に皆さんご存じかも知れませんし、他の人の参加レポートを読んでもらえればよいと思いますので、今回は自分の参加したTrainingについてのレポートとなります。

 

受講したトレーニング

今回私が参加したトレーニングは、BloodHoundといった著名なツールを開発し、業界では有名な企業「SpecterOps」によるAdversary Tactics: Identity-driven Offensive Tradecraftです。

合計4日間で、AD、ADCS、SCCM、Entra IDといった企業のネットワークでよく利用されるシステムの脆弱性およびその攻撃方法や、ブルーチームがそれらをどのように検知することが可能かについて学ぶことができるトレーニングとなります。ただ、前提条件としては、ある程度のADペンテストの経験、MythicやCobalt StrikeといったC2フレームワークの経験、あるいはSpecterOpsのトレーニング「Adversary Tactics: Red Team Operations」の受講が要求される比較的難易度の高いものとなっています。

URL: https://specterops.io/training/red-team-operations/

 

トレーニング内容

基本的には講義の時間とハンズオンの時間が50:50となるように設計されたトレーニングでした。講義に関しては英語ではありますが分かりやすく、基本的にはバッファオーバーフローといった技術的な脆弱性に対する攻撃というよりは、権限設定の不備を調査し、本来持たせるべきでない権限を持たせたオブジェクトがあった場合、それを利用して権限の昇格やアカウントの奪取を行うことにフォーカスしたものとなっていました。また、各攻撃手法や課題の解説に加え、ブルーチーム視点でこれらについてどのように検知するか、どのようなWindows Event IDやLDAPクエリが攻撃の痕跡として残るかを解説してくれるという、レッドチームとしても通常のトレーニングと異なる側面の刺激があるトレーニングだったと思います。

ハンズオンに関しては、基本的にMythicやCobalt Strikeといった既存の著名なC2フレームワークについてある程度経験していることが必須となります。実行環境自体はSpecterOps側で準備をしてくれているものの、全てのハンズオンがC2を利用して行われるので、ツールの使い方でつまずくと肝心の脆弱性を攻撃する段階までが終わり辛くなってしまうと思います。また、彼らが開発しているツールであることもあり、ラボの解説や回答がMythicを利用することが前提となっていました。一方で、自分としてはほとんどCobalt Strikeしか触ったことがなかったため、課題をこなす際につまずく部分が多くありました。以前にも案件で触れる機会はありましたが、オープンソースであり、Windows以外のOSでも動作するという特性上、やはりある程度成熟度を上げておく必要があると感じました。

1日目

Unconstrained Delegation、Constrained Delegation、Roll Based Constrained Delegationといった、比較的他のトレーニングでも学ぶことができるようなKerberos認証の委任を利用した権限昇格の方法に関する内容でした。ただ、MythicまたはCobalt Strikeの使用が前提となるため、単純な攻撃手法の学習というよりは、各C2フレームワークの使い方を考慮したうえでひと手間が発生する、といったところがありました。

2日目

NTLMに関する説明や、NTLM Relayのやり方について説明しつつ、ADCSまわりの設定不備について、どのように攻撃を行うかについてレクチャーを行うといったもので、これに関しては自分が知る限りで同じトレーニングはなく、しいて言うならばC2フレームワークを使わない状態でADCSの脆弱性について学べるAltered Securityのトレーニング「AD CS Attacks for Red and Blue Teams」があるくらいかな、といった感じでした。ADCSに関しては、そもそも攻撃手法に関する知識が通常のADに対する攻撃と比較してそこまで広まっておらず、実際に企業ネットワークのセキュリティを確認するにあたって、脆弱性を発見しやすいポイントと言えるのではと思っています。

3日目

ADFS、SCCM、Oktaといった、自分の業務ではあまり触れることがない部分が殆どでした。基本的に業務で関わる範囲にOAuthが入ってくることが少なく、企業向けのID管理・認証基盤でSSOによく使われるプロダクトとしてもOktaは見たことが無かったのですが、考え方としては他のプロダクトにも利用できそうなものだという印象を持ちました。

4日目

Microsoft AzureやEntra ID、Microsoft Graphといった、パブリッククラウドを利用する際のAttack Pathについてのレクチャーとなっていました。パブリッククラウドに関しても同様に、SpecterOpsがラボを構築し、参加者はそれに対して攻撃を行うというものでした。こちらに関しても、「AzureHound」といったツールの紹介があり、現在増え続けているEntra ID環境に対応するためには必要なものとなっていました。

トレーニングの復習

今回受講したトレーニングの内容のうち、実際に現在我々がデリバリーしているTLPTやペネトレーションテストのサービスに利用できそうなものとしては、Microsofot Configuration Managerに対する攻撃が挙げられます。Microsft Configuration Managerは、元々はSCCM (System Center Configuration Manager)、やMECM (Microsoft Endpoint Configuration Manager)等と呼ばれており、今回のトレーニングはSCCMとして紹介されていました。

トレーニング終了後に、自宅で環境を構築し、実際に攻撃を試してみましたので、その一例を紹介します。攻撃を試すことができる環境を構築する方法としては、恐らく一番簡単なものとしては、GOAD (Game Of Active Directory)を利用するものかと思います。今回は、このリポジトリを利用して、以下のような環境を構築しました。

network.png

今回は、このラボに対して、Takeover1と呼ばれる攻撃を試行し、一般アカウント権限の状態から、Configuration Managerの管理者権限を奪取します。特徴としては、Configuration Managerの主要な構成・管理データはSQL Server上の「Site Database」に存在することかと思います。

Takeover1のSpecterOpsによる定義としては、以下となります。

Hierarchy takeover via NTLM coercion and relay to MSSQL on remote site database

URL: https://docs.specterops.io/misconfiguration-manager-docs/attack-techniques/TAKEOVER/TAKEOVER-1/takeover-1_description

和訳すると、「NTLM認証を強制的に発生させ、その認証をリモートにあるSite DatabaseのMSSQLへRelayすることにより、SCCMの階層を乗っ取る」になるかと思います。注意するべきこととしては、SQL Serverを乗っ取るわけではなく、SQL Serverへの強い権限を利用して、SQL Server上のConfiguration Managerの設定を改ざんすることで、結果としてConfiguration Manager上の強い権限を得る、ことが目的です。

攻撃のステップ

もう少し具体的に攻撃のステップを分けると、以下の4段階になります。

  1. 昇格させたいADユーザーをConfiguration Managerの管理者にするためのSQLを組み立てる
  2. ntlmrelayをSCCM-MSSQL向けに待ち受けさせる
  3. SCCM-MECMに、Kali Linuxに対するNTLM認証を強制し、その認証をSCCM-MSSQLへRelayし、SQLを実行させる
  4. SCCM-MECM上で、該当ADユーザが管理者アカウントになったことを確認する

1. 昇格させたいADユーザーをMECMの管理者にするためのSQLを組み立てる

SCCMHunterというツールを利用することで、必要なSQL文を作成することができます。今回は、ラボに初期設定された「SCCMLAB\carol」という一般ユーザアカウントをMCEMの管理者アカウントとして昇格させるためのSQL文を構築します。

2. ntlmrelayをSCCM-MSSQL向けに待ち受けさせる

NTLM認証を別のサービスに中継するツールとしては、Impacketのツール群のうちの一つである、「impacket-ntlmrelay」が利用できます。今回はこれを利用することで、Kali linux上でリスナーが受け付けたNTLM認証を「SCCM-MSSQL」に転送し、「SCCMHunter」が作成したクエリを実行するよう設定します。

3. SCCM-MECMに、Kali Linuxに対するNTLM認証を強制し、その認証をSCCM-MSSQLへRelayし、SQLを実行させる

Kali Linux上でリスナーを設定したのちに、「SCCM-MECM」からKali Linuxに対してNTLM認証を実行させます。今回は、PetitPotamを利用することが可能です。「SCCM-MECM」にアクセスを行うユーザ名とパスワードとしては、「SCCMLAB\carol」を利用するものの、あくまでRPC処理を呼び出すためであり、実際にKali Linuxに対してNTLM認証を行うアカウントとしては、「SCCM-MECM」のマシンアカウント「MECM$」となります。

 

このコマンドを実行すると、Kali Linux上で実行してあったリスナー上でログが出力され、設定したSQL文が「SCCM-MSSQL」上で実行されていることが確認できます。

4. SCCM-MECM上で、該当ADユーザが管理者アカウントになったことを確認する

再びSCCMHunterを利用し、MECMへログインします。「show_admins」コマンドを利用することで、アカウント「SCCMLAB\carol」が管理者として追加されていることが確認できます。

最後に

最初の数日は時差ボケで生活習慣が崩れており困っておりましたが、終わってみるとトレーニングそのものだけでなく、日本に帰国してからも自分の技術を研鑽するきっかけとなり、貴重な体験でした。

ちなみに、今回のトレーニングに参加することで、SpecterOps公式のバッジとチャレンジコインを頂きました。このような特別な参加証明を貰えることも、今後スキルアップするにおいて大事な刺激となるかと思っています。

今回はプロジェクト日程の都合で8月6日(木)~8月9日(日)のDEF CON USA 2026にも参加することは叶いませんでしたが、いつか機会を作り参加してみたいと思います。